package com.shangxian.giveithome.service;

import com.shangxian.giveithome.entity.PageableDetails;
import com.shangxian.giveithome.entity.report.BlackList;
import com.shangxian.giveithome.entity.report.InputBlackList.ReportList;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

/**
 * @author Administrator
 * 举报业务接口
 */
@Service
public interface ReportService {

    /**
     * 提交举报（存储到黑名单中，默认状态为0，审核中）
     * @param reportList
     */
    void submitReport(ReportList reportList);

    /**
     * 通过手机号查询黑名单信息分页
     * @param id
     * @param pageable
     * @return
     */
    PageableDetails findBlackListByPhone(long id, Pageable pageable);

    /**
     * 通过微信号查询黑名单信息分页
     * @param wechat
     * @param pageable
     * @return
     */
    PageableDetails findBlackListByWechat(String wechat, Pageable pageable);

    /**
     * 根据黑名单记录id查询详细信息
     * @param id
     * @return
     */
    BlackList findBlackListDetails(long id);


    /**
     * 后台查询黑名单中待审核用户的信息
     * @param pageable
     * @return
     */
    PageableDetails backFindBlackListUserA(Pageable pageable);

    /**
     * 后台查询黑名单中审核禁用的用户的信息
     * @param pageable
     * @return
     */
    PageableDetails backFindBlackListUserB(Pageable pageable);

    /**
     * 后台查询黑名单中审核正常的用户的信息
     * @param pageable
     * @return
     */
    PageableDetails backFindBlackListUserC(Pageable pageable);

    /**
     * 后台查询黑名单中待审核的用户举报信息列表
     * @param id
     * @param pageable
     * @return
     */
    PageableDetails backFindBlackListDetailsListA(long id, Pageable pageable);

    /**
     * 后台查询黑名单中审核禁用的用户举报信息列表
     * @param id
     * @param pageable
     * @return
     */
    PageableDetails backFindBlackListDetailsListB(long id, Pageable pageable);

    /**
     * 后台查询黑名单中审核正常的用户举报信息列表
     * @param id
     * @param pageable
     * @return
     */
    PageableDetails backFindBlackListDetailsListC(long id, Pageable pageable);

    /**
     * 根据黑名单记录id查询详细信息
     * @param id
     * @return
     */
    BlackList backFindBlackListUserDetails(long id);

    /**
     * 禁用用户
     * @param blackList
     */
    void backDisableUser(BlackList blackList);

    /**
     * 后台审核正常用户
     * @param blackList
     */
    void backNormalUser(BlackList blackList);


}
